home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 25 / Cream of the Crop 25.iso / bbs / ued300.zip / UED.DOC < prev    next >
Text File  |  1997-04-28  |  38KB  |  784 lines

  1.  
  2.                                UED Version 3.00
  3.                            Maximus User Base Editor
  4.  
  5.                            Written by Colin Wheat
  6.                            Created April 28, 1997
  7.  
  8.            (C) Copyright 1990-1997 by CodeLand, All Rights Reserved
  9.  
  10.                  http://www.ami.com.au, http://bbs.ami.com.au
  11.               ftp://ftp.ami.com.au, Telnet/VMP://bbs.ami.com.au
  12.                    codeland@ami.com.au, Fidonet: 3:690/613
  13.  
  14.          UED is COMMERCIAL SHAREWARE software. Please register if you
  15.          intend to continue using UED. Please follow the registration
  16.                   process detailed in the REGISTER.UED file.
  17.  
  18.  
  19.  
  20.  TABLE OF CONTENTS
  21.  
  22.         SECTION             TITLE
  23.  
  24.         1                   LICENSE AGREEMENT
  25.         1.1                     Distribution
  26.         1.2                     Copying
  27.         1.3                     Modification
  28.         1.4                     Program Status
  29.         1.5                     Disclaimer
  30.  
  31.         2                   ACKNOWLEDGMENTS AND CREDITS
  32.         2.1                     Acknowledgments and Credits
  33.         2.2                     Trademarks
  34.         2.3                     Registration List
  35.  
  36.         3                   INTRODUCTION
  37.         3.1                     Introduction
  38.         3.2                     Requirements
  39.         3.3                     Features
  40.         3.4                     Distribution Notice
  41.         3.5                     Limitations Prior to Registration
  42.  
  43.         4                   CONFIGURATION
  44.         4.1                     Command Line
  45.  
  46.         5                   OPERATION
  47.         5.1                     Introduction
  48.         5.2                     Record Addition
  49.         5.3                     Base Packing
  50.         5.4                     Statistics
  51.         5.5                     Global Delete
  52.         5.6                     User Base Sort
  53.         5.7                     Field Edit Keys
  54.         5.8                     Program Hot Keys
  55.  
  56.         6                   RECORD DESCRIPTIONS
  57.         6.1                     Introduction
  58.         6.2                     Display and Editing
  59.         6.3                     Indication
  60.         6.4                     Deletion
  61.  
  62.         7                   MISCELLANEOUS
  63.         7.1                     Problems and Bug Reports
  64.         7.2                     Latest Version
  65.         7.3                     About UED
  66.  
  67.         8                   APPENDIX
  68.         8.1                     Maximus User Record Structure
  69.         8.2                     Description File Structure
  70.  
  71.  
  72.  
  73.  SECTION 1 - LICENSE AGREEMENT
  74.  
  75.  1.1 DISTRIBUTION. YOU MAY COPY AND DISTRIBUTE VERBATIM COPIES OF UED
  76.  EXECUTABLE CODE AS YOU RECEIVE IT, IN ANY MEDIUM, PROVIDED THAT YOU
  77.  CONSPICUOUSLY AND APPROPRIATELY PUBLISH ON EACH COPY A VALID COPYRIGHT
  78.  NOTICE; KEEP INTACT THE NOTICES ON ALL FILES THAT REFER TO THIS LICENSE
  79.  AGREEMENT AND TO THE ABSENCE OF ANY WARRANTY; PROVIDE UNMODIFIED COPIES OF
  80.  THE DOCUMENTATION AS PROVIDED WITH THE PROGRAM; AND GIVE ANY OTHER RECIPIENTS
  81.  OF UED A COPY OF THIS LICENSE AGREEMENT ALONG WITH THE PROGRAM. YOU MAY
  82.  CHARGE A DISTRIBUTION FEE FOR THE PHYSICAL ACT OF TRANSFERING A COPY, BUT NO
  83.  MORE THAN IS NECESSARY TO RECOVER YOUR ACTUAL COSTS INCURRED IN THE TRANSFER.
  84.  UNDER NO CIRCUMSTANCES IS UED TO BE DISTRIBUTED IN SUCH A WAY AS TO BE
  85.  CONSTRUED AS "VALUE ADDED" IN A SALES TRANSACTION, SUCH AS, BUT NOT LIMITED
  86.  TO, SOFTWARE BUNDLED WITH A MODEM OR OTHER HARDWARE PRODUCT.
  87.  
  88.  1.2 COPYING. YOU MAY NOT COPY, SUBLICENSE, DISTRIBUTE OR TRANSFER UED EXCEPT
  89.  AS EXPRESSLY PROVIDED UNDER THIS LICENSE AGREEMENT. ANY ATTEMPT OTHERWISE TO
  90.  COPY, SUBLICENSE, DISTRIBUTE OR TRANSFER UED IS VOID AND YOUR RIGHTS TO USE
  91.  THE PROGRAM UNDER THIS LICENSE AGREEMENT SHALL BE TERMINATED.
  92.  
  93.  1.3 MODIFICATION. WITH THE EXCEPTION OF ARCHIVING METHOD, UED SHOULD NOT BE
  94.  DISTRIBUTED IN ANY MODIFIED FORM. THE COMPLETE ARCHIVE SHOULD BE DISTRIBUTED
  95.  CONTAINING THE ORIGINAL FILES. IT MAY BE RE-PACKAGED USING A DIFFERENT
  96.  ARCHIVAL METHOD AS LONG AS THE CONTENTS OF THE ARCHIVE ARE THE SAME AS THAT
  97.  OF THE DISTRIBUTION KIT. ADDITIONAL FILES MAY NOT BE ADDED TO THE ARCHIVE.
  98.  
  99.  1.4 PROGRAM STATUS. THIS PROGRAM IS COMMERCIAL SOFTWARE, USING A SHAREWARE
  100.  DISTRIBUTION METHOD. USERS ARE REQUIRED TO REGISTER THE PROGRAM AFTER A
  101.  SUITABLE EVALUATION PERIOD. A REGISTRATION FORM IS SUPPLIED WITH THE PACKAGE.
  102.  
  103.  1.5 DISCLAIMER. USE THIS PROGRAM AT YOUR OWN RISK. NO WARRANTY IS STATED OR
  104.  IMPLIED. THE AUTHOR SHALL NOT BE HELD RESPONSIBLE FOR ANY DAMAGES RESULTING
  105.  FROM IT'S USE DIRECTLY OR INDIRECTLY.
  106.  
  107.  
  108.  
  109.  SECTION 2 - ACKNOWLEDGMENTS AND CREDITS
  110.  
  111.  2.1 We would like to thank the following individuals for their support and
  112.  assistance.
  113.  
  114.  Graham Stair, for porting the original UED code to the OS/2 operating system
  115.  back in Dec 91. Without his efforts we'd likely not have been able to provide
  116.  OS/2 support at that time. Graham also helped with improvements to the code,
  117.  both at problem or bug report levels and at the feature addition level.
  118.  
  119.  Special thanks go to the beta testers who provided both problem reports and
  120.  feature requests. This includes the Australian beta test network, including
  121.  Paul Marwick, David Nugent, Lincoln Dale, and Andrew Gulovsen; and the
  122.  International Maximus Beta team, of which the Author is a member.
  123.  
  124.  Thanks to Scott Dudley for his ever timely responses, the Maximus User
  125.  Structures, and for his longstanding development support for the the Maximus
  126.  bulletin board package.
  127.  
  128.  2.2 The following companies hold the following trademarks or market the
  129.  following products mentioned or referred to in this manual.
  130.  
  131.        IBM Corporation, Inc.                                OS/2
  132.        Microsoft Corporation                                MS-DOS
  133.        Microsoft Corporation                                MSC
  134.        Scott Dudley                                         Maximus
  135.        Wynn Wagner                                          Opus
  136.  
  137.  2.3 Registration List
  138.  
  139.  We'd like to thank the following people for registering UED V3.XX. Their
  140.  support is valued, and largely responsible for making this release possible.
  141.  
  142.  Barry Ryder, Worongary QLD
  143.  Graeme Bell, Stratton WA
  144.  Alberto Pasquale, Modena, Italy
  145.  Bob Juge, Sugar Land, Texas USA
  146.  Ian Taylor, Guildford WA
  147.  Dallas Hinton, Vancouver, BC
  148.  Bob Swift, Stony Plain, Alberta
  149.  Dale Kaechler, Petawawa, Ont, Canada
  150.  Adelaide PC Users Group, Adelaide South Australia
  151.  Carsten Brandt, Berlin Germany
  152.  Coracle Pty Ltd, Perth WA
  153.  Sydney PC Users Group, IBM BBS
  154.  Sydney PC Users Group, Mail Exchange BBS
  155.  Hans Schuts, Culemborg
  156.  Galaxy Gateway, Brisbane QLD
  157.  Jim Rogerson, St Albert, Alberta
  158.  Tom Hall, Edmonton, Alberta, Canada
  159.  Christian Emig, 74189 Weinsberg
  160.  Craig Clark, Devonshire, Bermuda
  161.  Harald Kamm, Bamberg, Germany
  162.  Kurt Vogelsaenger, Neustadt/Wstr, Germany
  163.  Steven Evans, Auckland, NZ
  164.  Tracy Molitor, Milford CT, USA
  165.  Rafael Suarez Verdugo, Madrid
  166.  
  167.  
  168.  
  169.  SECTION 3 - INTRODUCTION
  170.  
  171.  3.1 Introduction
  172.  
  173.  UED is an external Maximus User Base Editor, allowing rapid editing,
  174.  searching and sorting of your user records. Although the Maximus inbuilt User
  175.  Editor is full featured, UED allows quick and simple access to the User base.
  176.  It is able to fully use system resources without the code and space
  177.  limitations under which a remote editor usually must operate.
  178.  
  179.  3.2 Requirements
  180.  
  181.  MS-DOS 3.XX, its equivalent, or later version is required for DOS
  182.  operation. Operation under OS/2 requires OS/2 version 1.3 or later.
  183.  
  184.  Maximus Version 3.XX.
  185.  
  186.  3.3 Features
  187.  
  188.  * Pop-up Menu system and full screen operation
  189.  * Maximus v3.XX support, and 8192 user records
  190.  * Optional text description or comment for every user record
  191.  * Browse screen allows paging through the User Base
  192.  * User Base sorting with sixteen key choices in two directions
  193.  * User Base search with four key choices including Name/Alias
  194.  * Instant User upgrade system, with sixteen configuration profiles
  195.  * Global functions allowing record deletion and setting of Keys
  196.  * Six user base statistics report screens
  197.  * Optional text descriptions of keys, and file compression record fields
  198.  * Supports OS/2 and (MS)DOS with the one executable
  199.  
  200.  3.4 Distribution Notice
  201.  
  202.  The distribution archive contents (UED300.LZH) are listed below:
  203.  
  204.  UED.EXE        - The program executable
  205.  UED.DOC        - Documentation in text format
  206.  UED.HTM        - Documentation in HTML (WEB) format
  207.  UED.GIF        - HTML title image
  208.  ICONCOD.GIF    - HTML Codeland icon image
  209.  REGISTER.UED   - Package Registration
  210.  
  211.  3.5 Limitations Prior to Registration
  212.  
  213.  The distributed SHAREWARE release is identical in all respects to registered
  214.  versions. No new version of the code, package, or executable is required. The
  215.  registration process is simply a matter of adding three lines to the UED.INI
  216.  file. When the product is registered, unregistered limitations are removed.
  217.  
  218.  For this release, the unregistered limitations consist of 1) an unregistered
  219.  warning at program startup, and 2) a limit imposed on the EDIT and BROWSE
  220.  screens, where by writes/updates to the USER.BBS database are limited to five
  221.  occurances per program execution. Exiting the program and re-executing it
  222.  will enable another five updates to the user file. Note that there is no date
  223.  expiry for release versions of UED. Previous beta versions have included a
  224.  date expiry to prevent longterm usage of obsolete code, and future beta
  225.  versions may also include date expiry checks.
  226.  
  227.  
  228.  
  229.  SECTION 4- CONFIGURATION
  230.  
  231.  4.1 Command Line
  232.  
  233.         UED V3.00    - the Maximus V3.XX Specific User Base Editor
  234.             (C) Copyright 1990-97 by CodeLand, All Rights Reserved
  235.  
  236.             Syntax:  UED   [-switch -switch ... ]
  237.  
  238.                  -C<name>  Configuration file path & name
  239.                  -G###     Start at record ###
  240.                  -D        Force debug/maintenance mode
  241.                  -A        Use monochrome attributes
  242.                  -M<path>  Maximus directory override
  243.                  -R        Edit registration details
  244.                  -?        Program help screen
  245.  
  246.  -C<path> UED Configuration file path and name. This switch allows operating
  247.  with multiple configurations. e.g. -Cued.ini
  248.  
  249.  -G### Start operation at user record number ###. If the number specified is
  250.  greater then available records, UED seeks to the last record. Thus "UED
  251.  /g9999" would provide a goto last record function.
  252.  
  253.  -D Force debug/maintenance mode. This can also be toggled on and off from
  254.  within UED, at the Configuration pop-up menu. Maintenance mode supports
  255.  editing of the LR pointer within each user record, and sorting by LR pointer.
  256.  
  257.  -A Force monochrome text attributes.
  258.  
  259.  -M<path> Full path to Maximus directory. Default is the current directory.
  260.  e.g. -MC:\Max
  261.  
  262.  -R Edit registration details. Activates a registration entry box, exits to
  263.  the operating system.
  264.  
  265.  -? Displays these command line controls.
  266.  
  267.  
  268.  
  269.  SECTION 5 - OPERATION
  270.  
  271.  5.1 Introduction
  272.  
  273.  The use of hotkeys, full screen menus, and simple user interface means that
  274.  UED puts the power to manage your user base at your finger tips. All
  275.  functions are controlled directly from easily accessible menu options. UED is
  276.  rich in control keys, see both the field editing, and program hot keys listed
  277.  in this manual. Features to look for are the TAB descriptions toggle on the
  278.  Edit screen, and the TAB and Shift TAB PAN commands on the Browse screen.
  279.  
  280.  5.2 Record Addition
  281.  
  282.  The Append New Record pop-up menu option adds a new blank user record to the
  283.  user file. The new record is appended to the end of the file. UED makes the
  284.  new record the current record, and adjusts the screen to display it. The
  285.  string "Record created by UED" is entered in the name field to aid
  286.  identification of newly added records. During the record addition process UED
  287.  assigns the new record an unused message lastread pointer offset.
  288.  
  289.  5.3 Base Packing
  290.  
  291.  The Pack User File pop-up menu option rewrites the User file, deleting all
  292.  records marked with the Deleted flag. It writes the new User file using the
  293.  last Index method, giving you the option of sorting the on disk user base.
  294.  
  295.  The pack option is generally used to remove old deleted records from the user
  296.  base. Also as mentioned above, it writes using indexed order, so this option
  297.  is used to sort your user base, in conjunction with the Index command.
  298.  
  299.  5.4 Statistics
  300.  
  301.  Included on the pop-up menu are six statistics screens. UED does not scan the
  302.  user base during power up so that base must be scanned to gather the needed
  303.  statistics for display during the first execution of any of the statistics
  304.  screens.
  305.  
  306.  Most of the statistics screens are self explanatory, with the exception of
  307.  the Best Ten Users screen. This is a weighted display, sorted by the index
  308.  figure displayed in the right hand column. The index figure is calculated
  309.  from all of user calls to the system, the total uploads, and the total
  310.  downloads.
  311.  
  312.  5.5 Global Delete
  313.  
  314.  The function of this screen is to either set the delete flag depending on the
  315.  set criteria, or to clear all delete flags, during scanning of the complete
  316.  user base. Records are not removed. Assuming the record deleted flags are set
  317.  as you would choose after a global delete run, the Pack command can then be
  318.  used to remove or move deleted records from the user base. Note that all
  319.  settings on the Global Delete screen are saved in the UED configuration file
  320.  with the Save Settings command.
  321.  
  322.  There are six setting types that control how UED decides whether a record
  323.  should be deleted. These are; days since last call, total calls made, keys to
  324.  block deletion, privilege level to process, a flag for not deleting records
  325.  with an expiry setting, and a flag for not deleting records containing a
  326.  Credit value. These six control types are detailed below.
  327.  
  328.  5.5.1 Days. These setting are the heart of the Global Delete screen. A days
  329.  old figure can be set for each of the twelve privilege levels. All entries
  330.  default to 180 days, which is approx. six months. As an example, if you have
  331.  a figure of 180 for the Normal privilege level, then all records of Normal
  332.  privilege can only be marked as deleted if their last call date is earlier
  333.  than 180 days from the current system date. See also the Calls entry below.
  334.  
  335.  5.5.2 Calls. The Calls entries are also considered when a priviledge level is
  336.  flagged for processing, such that the Days since last call entry is checked.
  337.  To enable the record to be deleted, as well as passing the Days check
  338.  detailed above, the record much have make less calls to the system than the
  339.  entered Calls value. To avoid a lockout problem, where after enough calls
  340.  have been made the record would not be deleted no matter how long since the
  341.  last call, there is also an "All Levels" Days setting with no Calls entry,
  342.  used as a last check for each priviledge level flagged for processing. Note
  343.  that the "All Levels" setting is ONLY applied to priviledge levels flagged
  344.  for processing.
  345.  
  346.  5.5.3 Key Mask. This enables you to prevent deletion of records possessing
  347.  one or any combination of user keys. If you don't want keys considered during
  348.  the Global Delete, set all key flags to YES, meaning don't prevent deletion
  349.  for any key.
  350.  
  351.  5.5.4 Privilege Levels. With this option, you can mask out whole privilege
  352.  levels from the Global Delete process. Any level set to NO will never be
  353.  marked as deleted. Normally you'd have the higher levels e.g. Sysop,
  354.  AsstSysop, and Clerk masked out on the assumption these levels should never
  355.  be removed during global maintenance.
  356.  
  357.  5.5.5 Expiry Mask. The expiry mask flag, when set to NO, prevents all records
  358.  which have an Expiry setting other than None from being marked as deleted.
  359.  Useful for systems actively using the Maximus account expiry subsystem. The
  360.  assumption is that if the account already has an automatic expiry setting
  361.  active, global deletion by date would not be necessary nor desirable. To
  362.  ignore Expiry settings during Global Deletion runs, set this flag to YES.
  363.  
  364.  5.5.6 Credit Mask. The credit mask flag, when set to NO, prevents all records
  365.  which have a Credit setting other than zero from being marked as deleted. To
  366.  ignore Credit settings during Global Deletion runs, set this flag to YES.
  367.  
  368.  5.6 User Base Sort
  369.  
  370.  UED supports sixteen sort methods, including the default index which is user
  371.  file order. Sort direction for each type can be either Normal (ascending), or
  372.  Reverse (descending). Maximus requires that the Sysop user record always be
  373.  first record in the user file. For this reason UED never moves or sorts the
  374.  first record.
  375.  
  376.  Sorting is accessed by the Index menu option off the pop-up menu. To choose a
  377.  sort direction, simply hit <Enter> with the menu bar on the Normal/Reverse
  378.  item. To sort the user base, choose the sort type with the menu bar, and
  379.  press <Enter>.
  380.  
  381.  UED references all on disk data via an in memory index. This index is set to
  382.  file order at program start up. Using the indexing or sorting commands is
  383.  simply sorting the in memory index. This has several implications. Firstly,
  384.  using the sort commands on the Index menu does NOT affect the user file on
  385.  the system disk drive. To save a sort order permanently, you should execute
  386.  the Pack command, which rewrites the user file to disk using the current sort
  387.  index. Secondly, depending on system response time (speed) some of the UED
  388.  functions will run at reduced speed when operating with other than the File
  389.  Order index. The Browse screen is one such case.
  390.  
  391.  5.6.1 Multiple Keys. Multiple key sorting is supported, by executing
  392.  consecutive sorts. UED does maintain existing index order during non-unique
  393.  key indexing, making this possible. As an example, to sort the user base by
  394.  privilege level, using last name as a secondary key (meaning each privilege
  395.  level would have records in second name order), firstly sort by second name,
  396.  then by privilege. The privilege sort will maintain the existing order for
  397.  all privileges of the same value.
  398.  
  399.  5.6.2 Sort methods
  400.                1  File Order  - Current User File order (the default)
  401.                2  2nd Name    - Last name
  402.                3  1st Name    - First name
  403.                4  Alias       - User Alias
  404.                5  Location    - City field
  405.                6  Telephone   - Telephone number
  406.                7  Data Phone  - Data phone number
  407.                8  Msg Area    - Current Message Area
  408.                9  File Area   - Current File Area
  409.                10 Access LVL  - User Privilege Level
  410.                11 Date Lcall  - Last call date
  411.                12 Date PWChg  - Password changed date
  412.                13 Call Count  - Calls made to the system
  413.                14 Kb DnLoads  - Total users downloads
  414.                15 Kb UpLoads  - Total users uploads
  415.              * 16 LR Pointer  - Last read pointer
  416.  
  417.        * Only available in maintenance mode
  418.  
  419.  5.7 Field Edit Keys
  420.  
  421.  General command keys which are active during field editing and data entry are
  422.  listed below. Several of these key commands are not noted clearly within the
  423.  program.
  424.  
  425.            ESC           - Abort field editing, exit
  426.            END           - Goto end of current field
  427.            HOME          - Goto start of current field
  428.            UP ARROW      - Step up one edit field
  429.            DOWN ARROW    - Step down one edit field
  430.            TAB           - Step one field right
  431.            Shift TAB     - Step one field left
  432.            DEL           - Delete character at cursor
  433.            BACKSPACE     - Delete character left
  434.            Ctl BACKSPACE - Delete word left
  435.            Ctrl R        - Restore field to original contents
  436.            Ctrl T        - Delete word right
  437.            Ctrl U        - Delete to end of field
  438.            Ctrl Y        - Delete to end of last field
  439.            Ctrl-<Enter>  - Save and exit field editing
  440.            INS           - Toggle insert mode
  441.  
  442.  5.8 Program Hot Keys
  443.  
  444.  Several command functions can be executed by hotkey, giving a quick
  445.  'shortcut' access to the function. These exist in various places including
  446.  the Edit screen and the Browse screen.
  447.  
  448.        5.8.1  Edit Screen
  449.            W                - Edit password
  450.            X                - Edit expiry
  451.            K                - Edit keys
  452.            G                - Edit Gender
  453.            M                - Edit File/Msg Areas
  454.            Alt-1 to Alt-X   - Key toggle
  455.            <                - Privilege level downgrade
  456.            >                - Privilege level upgrade
  457.            DEL              - Toggle record deleted flag
  458.            TAB              - Description display toggle
  459.            HOME             - Goto first record
  460.            END              - Goto last record
  461.            PAGE UP          - Step back 16 records
  462.            PAGE DOWN        - Step forward 16 records
  463.            UP ARROW         - Step back one record
  464.            DOWN ARROW       - Step forward one record
  465.            Grey +           - Steps forward one record
  466.            Grey -           - Step back one record
  467.            ESC              - Pop-up menu
  468.  
  469.        5.8.2  Browse Screen
  470.            <                - Privilege level downgrade
  471.            >                - Privilege level upgrade
  472.            DEL              - Toggle record deleted flag
  473.            TAB              - PAN screen right
  474.            Shift TAB        - PAN screen left
  475.            HOME             - Goto first record
  476.            END              - Goto last record
  477.            PAGE UP          - Step back 16 records
  478.            PAGE DOWN        - Step forward 16 records
  479.            UP ARROW         - Step back one record
  480.            DOWN ARROW       - Step forward one record
  481.            Grey +           - Steps forward one record
  482.            Grey -           - Step back one record
  483.            ESC              - Pop-up menu
  484.  
  485.  
  486.  
  487.  SECTION 6 - RECORD DESCRIPTIONS
  488.  
  489.  6.1 Introduction
  490.  
  491.  UED supports the Maximus v2.XX external record description system. This
  492.  allows optional text comments for each user record. The design allows for up
  493.  to 4095 characters, though for screen space reasons UED currently limits it's
  494.  creation and editing to 165 characters, which is 3 short lines.
  495.  
  496.  6.2 Display and Editing
  497.  
  498.  Descriptions are displayed and edited from the Edit screen. A Descriptions
  499.  flag exists on the Setup menu to toggle display on or off, with the TAB key
  500.  being a quick shortcut hotkey for the same function. The Descriptions window
  501.  overlays some of the fields on the Edit screen, TAB quickly toggles between
  502.  the two alternate displays. This display flag is saved in the configuration
  503.  file so that UED will default to your preferred display. With the
  504.  descriptions window toggled on, using the Edit command allows editing or
  505.  creation of the description for the current record. When toggled off normal
  506.  editing is possible.
  507.  
  508.  6.3 Indication
  509.  
  510.  On the Edit screen, a new field to the right of the Alias field shows blank
  511.  for no description, and 'DESC' for records possessing an extended
  512.  description. For the Browse screen, existence of an extended description is
  513.  indicated by a small bullet character on the right hand edge of the screen.
  514.  Note that these two indicators are displaying the status of the USER.BBS
  515.  descriptions pointer. The descriptions text is stored in a file called
  516.  USER.EXT in the Maximus directory. If this file had been deleted UED will not
  517.  find the description, displaying a blank description field. To clear the
  518.  descriptions pointer in this case, as with description deletion below, simply
  519.  save a blank description.
  520.  
  521.  6.4 Deletion
  522.  
  523.  External descriptions are deleted by simply saving a blank description field.
  524.  Toggle the description display on (TAB), use the Edit command, <Enter> down
  525.  to the descriptions window, press HOME (goto start of current field), press
  526.  Ctrl-Y (erase current field), and press Ctrl-Enter (save and exit).
  527.  
  528.  
  529.  
  530.  SECTION 7 - MISCELLANEOUS
  531.  
  532.  7.1 Problems and Bug Reports
  533.  
  534.  If you have come across any 'features' or have any suggestions on how to
  535.  improve UED, you can contact us through the net or via surface mail, at the
  536.  addresses listed below. All feed back good AND bad is welcomed. Much of what
  537.  has changed in UED since the last release is due to feedback offered over the
  538.  past years.
  539.  
  540.         Post:      CodeLand Australia
  541.                    P.O.Box 351
  542.                    Kalamunda WA 6076
  543.                    AUSTRALIA
  544.  
  545.         Internet:  codeland@ami.com.au
  546.  
  547.         Fidonet:   3:690/613.0
  548.                    Perth's Library BBS
  549.                    Colin Wheat, SysOp.
  550.  
  551.  7.2 Latest Version
  552.  
  553.        Via internet;
  554.        http://www.ami.com.au
  555.        http://bbs.ami.com.au
  556.        ftp://bbs.ami.com.au
  557.        Telnet/VMP:bbs.ami.com.au
  558.  
  559.        E.g. the ftp path for this release is:
  560.        ftp://bbs.ami.com.au/pub/bbs/max/ued300.lzh
  561.  
  562.        Via Fidonet;
  563.        The magic name UED will always offer the latest beta version available,
  564.        on the author's system (Fidonet 3:690/613). File requests are always
  565.        welcome. As with all beta software, usage is at your own risk. The
  566.        latest release archive is always available under it's own name.
  567.  
  568.  7.3 About UED
  569.  
  570.  UED is written in the C language with the Microsoft MSC v6.0 compiler. Using
  571.  the Family Mode API, the executable supports execution under DOS real-mode
  572.  and OS/2 protected mode. OS/2 operation is recommended for reasons of general
  573.  reliability and stability.
  574.  
  575.  
  576.  
  577.  SECTION 8 - APPENDIX
  578.  
  579.  8.1 Maximus User Record Structure
  580.  
  581.  The following structure describes the format of the USER.BBS data file, in a
  582.  format suitable for usage by MSC6. Consult Maximus distributions for detailed
  583.  information.
  584.  
  585.     #define INCL_DOS
  586.     #include <os2.h>
  587.     #define  TRANSIENT   0
  588.     #define  DEMOTED     10
  589.     #define  LIMITED     20
  590.     #define  NORMAL      30
  591.     #define  WORTHY      40
  592.     #define  PRIVIL      50
  593.     #define  FAVORED     60
  594.     #define  EXTRA       70
  595.     #define  CLERK       80
  596.     #define  ASSTSYSOP   90
  597.     #define  SYSOP       100
  598.     #define  HIDDEN      65535
  599.     /* Help levels */
  600.     #define  EXPERT     (UCHAR)0x02  /* grizzled veteran, no menus at all       */
  601.     #define  REGULAR    (UCHAR)0x04  /* experienced user, brief menus           */
  602.     #define  NOVICE     (UCHAR)0x06  /* Full menus plus additional hand-holding */
  603.     #define  HOTFLASH   (UCHAR)0x20  /* Hotkey, full-screen interface           */
  604.     /* Masks for usr.bits1, below */
  605.     #define BITS_HOTKEYS     0x0001 /* Hotkeys, independent of HOTFLASH level   */
  606.     #define BITS_NOTAVAIL    0x0002 /* If set, user is NOT normally available   *
  607.                                      * for chat.                                */
  608.     #define BITS_FSR         0x0004 /* Full-screen reading in msg areas         */
  609.     #define BITS_NERD        0x0008 /* Yelling makes no noise on sysop console  */
  610.     #define BITS_NOULIST     0x0010 /* Don't display name in userlist           */
  611.     #define BITS_TABS        0x0020 /* Reserved                                 */
  612.     #define BITS_ENCRYPT     0x0040 /* Password encryption flag                 */
  613.     #define BITS_RIP         0x0080 /* Remote Imaging Prototocol support        */
  614.     /* Masks for usr.bits2, below */
  615.     #define BITS2_BADLOGON   0x0001 /* MAX: if user's last logon attempt was bad*/
  616.     #define BITS2_IBMCHARS   0x0002 /* MAX: if user can receive high-bit chars  */
  617.     #define BITS2_RSVD1      0x0004 /* MAX: *obsolete* 1.02 avatar flag         */
  618.     #define BITS2_BORED      0x0008 /* Use the line-oriented editor             */
  619.     #define BITS2_MORE       0x0010 /* Wants the "MORE?" prompt                 */
  620.     #define BITS2_RSVD2      0x0020 /* OPUS: set=wants Ansi                     */
  621.     #define BITS2_CONFIGURED 0x0040 /* OPUS: set=used Maximus before            */
  622.     #define BITS2_CLS        0x0080 /* OPUS: set=transmit ^L, clear=ignore ^L   */
  623.     #define BITS2_BIT8       0x0100 /* used to be 'usr.keys'                    */
  624.     #define BITS2_BIT9       0x0200 /* used to be 'usr.keys'                    */
  625.     #define BITS2_BITA       0x0400 /* used to be 'usr.keys'                    */
  626.     #define BITS2_BITB       0x0800 /* used to be 'usr.keys'                    */
  627.     #define BITS2_BITC       0x1000 /* used to be 'usr.keys'                    */
  628.     #define BITS2_BITD       0x2000 /* used to be 'usr.keys'                    */
  629.     #define BITS2_BITE       0x4000 /* used to be 'usr.keys'                    */
  630.     #define BITS2_BITF       0x8000 /* used to be 'usr.keys'                    */
  631.     #define SEX_UNKNOWN       0x0000
  632.     #define SEX_MALE          0x0001
  633.     #define SEX_FEMALE        0x0002
  634.     /* Masks for usr.delflag, below.  WARNING!  Only the first eight bits       *
  635.      * of this flag should be used for compatibility with df_save!              */
  636.     #define UFLAG_DEL   0x01
  637.     #define UFLAG_PERM  0x02
  638.     /* Masks for usr.xp_flag, below */
  639.     #define XFLAG_EXPDATE    0x0001 /* Use the xp_date to control access        */
  640.     #define XFLAG_EXPMINS    0x0002 /* Use the xp_mins number to control access */
  641.     #define XFLAG_DEMOTE     0x0004 /* Demote user to priv level in usr.xp_priv */
  642.     #define XFLAG_AXE        0x0008 /* Just hang up on user                     */
  643.     /* Constants for usr.video, below */
  644.     #define GRAPH_TTY         0x00 /* The current user's graphics setting...    */
  645.     #define GRAPH_ANSI        0x01
  646.     #define GRAPH_AVATAR      0x02
  647.     #define GRAPH_RIP         0x03
  648.     /* If protocol >= 0, then I suggest that you just print "External          */
  649.     /* Protocol (n)", where 'n' is simply 'usr.def_proto+1'.                   */
  650.     #define PROTOCOL_none        -1 /* Protocol to use for sending/receiving   */
  651.     #define PROTOCOL_xmodem      -2 /* files.  If we're using an EXTERNAL      */
  652.     #define PROTOCOL_ymodem      -3 /* protocol, `protocol' will have a value  */
  653.     #define PROTOCOL_xmodem1k    -4 /* >= 0.                                   */
  654.     #define PROTOCOL_sealink     -5
  655.     #define PROTOCOL_zmodem      -6
  656.     #define PROTOCOL_ymodemg     -7
  657.     #define MAX_ALEN       64  /* MAX3: Max length of usr.msg[] and usr.files[]  */
  658.     #pragma pack(1)
  659.     struct _stamp { /* DOS-style datestamp */
  660.         struct {
  661.             USHORT da : 5;
  662.             USHORT mo : 4;
  663.             USHORT yr : 7;
  664.         } date;
  665.         struct {
  666.             USHORT ss : 5;
  667.             USHORT mm : 6;
  668.             USHORT hh : 5;
  669.         } time;
  670.     };
  671.     struct _dos_st
  672.     {
  673.         USHORT date;
  674.         USHORT time;
  675.     };
  676.     union stamp_combo {
  677.         ULONG ldate;
  678.         struct _stamp msg_st;
  679.         struct _dos_st dos_st;
  680.     };
  681.     struct _usr {
  682.         UCHAR name[36];       /* Caller's name                               0*/
  683.         UCHAR city[36];       /* Caller's location                          36*/
  684.         UCHAR alias[21];      /* User's alias (handle)                      72*/
  685.         UCHAR phone[15];      /* User's phone number                        93*/
  686.         USHORT lastread_ptr;  /* A num which points to offset in           108*/
  687.                               /* file -- Offset of lastread pointer will be   */
  688.                               /* lastread_ptr*sizeof(int).                    */
  689.         USHORT timeremaining; /* Time left for current call (xtern pro     110*/
  690.         UCHAR pwd[16];        /* Password                                  112*/
  691.         USHORT times;         /* Number of previous calls to this system   128*/
  692.         UCHAR help;           /* Help level                                130*/
  693.         USHORT group;         /* MAX3: Group number (not implemented)      131*/
  694.         UCHAR video;          /* user's video mode (see GRAPH_XXXX)        133*/
  695.         UCHAR nulls;          /* Number of Nulls (delays) after <cr>       134*/
  696.         UCHAR bits;           /* Bit flags for user (number 1)             135*/
  697.         USHORT dob_year;      /* MAX3: Date of birth: year (1900-)         136*/
  698.         USHORT bits2;         /* Bit flags for user (number 2)             138*/
  699.         SHORT max2priv;       /* Access level                              140*/
  700.         CHAR dataphone[19];   /* MAX3: Data/business phone number          142*/
  701.         UCHAR struct_len;     /* len of struct, divided by 20. SEE ABOVE!  161*/
  702.         USHORT time;          /* Time on-line so far today                 162*/
  703.         USHORT delflag;       /* Used to hold baud rate for O)utside comman164*/
  704.                               /* In USER.BBS, usr.flag uses the constants     */
  705.                               /* UFLAG_xxx, defined earlier in this file.     */
  706.         ULONG msgs_posted;    /* MAX3: Total number of messages posted     166*/
  707.         ULONG msgs_read;      /* MAX3: Total number of messages read       170*/
  708.         UCHAR width;          /* Width of the caller's screen              174*/
  709.         UCHAR len;            /* Height of the caller's screen             175*/
  710.         USHORT credit;        /* Matrix credit, in cents                   176*/
  711.         USHORT debit;         /* Current matrix debit, in cents            178*/
  712.         USHORT xp_priv;       /* Priv to demote to, when time or minutes ru180*/
  713.                               /* out.                                         */
  714.         SCOMBO xp_date;       /* Bit-mapped date of when user expires      182*/
  715.                                     /* If zero, then no expiry date.          */
  716.         ULONG xp_mins;        /* How many minutes the user has left before 186*
  717.                                * expiring.                                    */
  718.         UCHAR  xp_flag;       /* Flags for expiry.  See above XFLAG_XXX def190*/
  719.         UCHAR  sex;           /* MAX3: Sex: SEX_MALE or SEX_FEMALE)        191*/
  720.         SCOMBO ludate;        /* Bit-mapped date of user's last call 192*/
  721.         ULONG xkeys;          /* User's keys (all 32 of 'em)               196*/
  722.         UCHAR  lang;          /* The user's current language #             200*/
  723.         CHAR def_proto;       /* Default file-transfer protocol            201*/
  724.         ULONG up;             /* K-bytes uploaded, all calls               202*/
  725.         ULONG down;           /* K-bytes downloaded, all calls             206*/
  726.         ULONG downtoday;      /* K-bytes downloaded, today                 210*/
  727.         UCHAR rsvd45[18];     /* MAX3: Reserved by Maximus for future use  214*/
  728.         USHORT call;          /* Number of previous calls today            232*/
  729.         UCHAR compress;       /* Default compression program to use        234*/
  730.         UCHAR  df_save;       /* MAX3: Used for storing real usr.delflag in235*
  731.                                * LASTUSxx.BBS while in a door.                */
  732.         ULONG extra;          /* User description pointer                  236*/
  733.         SCOMBO date_1stcall;  /* Date of first call to system              400*/
  734.         SCOMBO date_pwd_chg;  /* Date of last password change              244*/
  735.         ULONG nup;            /* Number of files uploaded                  248*/
  736.         ULONG ndown;          /* Number of files downloaded                252*/
  737.         ULONG ndowntoday;     /* Number of files downloaded today          256*/
  738.         USHORT time_added;    /* Time credited to the user for today       260*/
  739.         UCHAR msg[MAX_ALEN];  /* Current message area                      262*/
  740.         UCHAR files[MAX_ALEN];/* Current file area                         326*/
  741.         UCHAR dob_day;        /* Date of birth: day (1-31)                 390*/
  742.         UCHAR dob_month;      /* Date of birth: month (1-12)               391*/
  743.         ULONG point_credit;   /* Total points allocated                    392*/
  744.         ULONG point_debit;    /* Total points used                         396*/
  745.         SCOMBO date_newfile;  /* Date of last new-files check              240*/
  746.         USHORT priv;          /* Privilege level                           404*/
  747.         UCHAR rsvd6[54];      /* Reserved for future use                   406*/
  748.     };
  749.     #pragma pack()
  750.  
  751.  8.2 Maximus Descriptions File Structure (USER.EXT)
  752.  
  753.                 00 'M'          "M!" is the file identification
  754.                 01 '!'
  755.              /  02 0x0005       usr.lastread_ptr==5 <-- usr.extra points here
  756.              |  04 0x0003       Length of description including the NULL
  757.    Record 1  |  06 'H'          \
  758.    Active    |  07 'i'          |- Description text
  759.              \  08 '\0'         /
  760.              /  09 0x0006       usr.lastread_ptr==6 <-- usr.extra points here
  761.              |  11 0x8009       Length of description including the NULL
  762.    Record 2  |  13 'D'          \
  763.    Deleted   |  14 'e'          |
  764.              |  15 'l'          |
  765.              |  16 'e'          |
  766.              |  17 't'          |- Description text
  767.              |  18 'e'          |
  768.              |  19 'd'          |
  769.              |  20 '!'          |
  770.              \  21 '\0'         /
  771.              /  22 0x0007       usr.lastread_ptr==7 <-- usr.extra points here
  772.              |  24 0x0009       Length of description including the NULL
  773.              |  26 'T'          \
  774.              |  27 'h'          |
  775.              |  28 'e'          |
  776.              |  29 ' '          |
  777.    Record 3  |  30 'B'          |- Description text
  778.    Active    |  31 'O'          |
  779.              |  32 'S'          |
  780.              |  33 'S'          |
  781.              \  34 '\0'         /
  782.                 35 EOF          End of file
  783.  
  784.